package 回溯;

/**
 * todo
 *
 * @author songZiHao
 * @version 1.0.0
 * @ClassName 公平分发饼干2305.java
 * @createTime 2023年08月11日 15:23:00
 */
public class 公平分发饼干2305 {
	int[] list = null;
	int max = Integer.MAX_VALUE;
	public int distributeCookies(int[] cookies, int k) {
		list= new int[k];
		return max;
	}

	/**
	 * 回溯算法
	 *
	 * @param cookies 饼干数量
	 * @param k       人数
	 * @param index   当前饼干袋子
	 */
	public void backTrace(int[] cookies, int k, int index) {
		//结束条件 饼干发完了
		if (index == cookies.length) {
			//找出饼干最多的孩子
			int temp=Integer.MIN_VALUE;
			for (int i = 0; i < k; i++) {
				temp=Math.max(temp,list[i]);
			}
			max=Math.min(temp,max);
			return;
		}
		//做选择进行分发
		for (int i = 0; i < k; i++) {
			//发给当前孩子饼干
			list[i] += cookies[index];
			//递归
			backTrace(cookies, k, index + 1);
			//撤销选择
			list[i] -= cookies[index];
		}
	}
}
